﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.IO;
using System.Xml;

namespace DB2CSV
{
    public partial class Main : Form
    {
        XmlSerializer s;
        DaneUzytkownika oracle;
        string _nazwaTabeli;
        Polaczenie polaczenie;

        public Main()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            s = new XmlSerializer(typeof(DaneUzytkownika));
            StreamReader sr = new StreamReader("dane\\logowanie.xml");
            XmlTextReader r = new XmlTextReader(sr);
            Object obj = s.Deserialize(r);
            sr.Close();
            oracle = (DaneUzytkownika)obj;
            //DaneUzytkownika oracle = new DaneUzytkownika("ja", "aaa", "xe", "1521", "127.0.0.1");
            //s = new XmlSerializer(typeof(DaneUzytkownika));
            //TextWriter w = new StreamWriter("dane\\logowanie.xml");
            //s.Serialize(w, oracle);
            polaczenie = new Polaczenie(oracle);
            polaczenie.conn.StateChange += new StateChangeEventHandler(conn_StateChange);
            polaczenie.Polacz();
           
        }

        void conn_StateChange(object sender, StateChangeEventArgs e)
        {
            tsStatus.Text = e.CurrentState.ToString();
        }

        private void zakończToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void btSzukaj_Click(object sender, EventArgs e)
        {
            _nazwaTabeli = tbSzukaj.Text;
            //czyszczenie grid'a
            if (wyborKolumn.DataSource != null)
            {
                wyborKolumn.Columns.Remove("x");
                wyborKolumn.Columns.Remove("kolumna");
                wyborKolumn.Columns.Remove("typ");
            }
            wyborKolumn.DataSource = polaczenie.PokazKolumny(_nazwaTabeli);

            //dodawanie kolumny checkbox'ów
            DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
            {
                column.HeaderText = "x";
                column.Name = "x";
                column.AutoSizeMode =
                    DataGridViewAutoSizeColumnMode.DisplayedCells;
                column.FlatStyle = FlatStyle.Standard;
                column.ThreeState = true;
                column.DefaultCellStyle.NullValue = false;
                column.CellTemplate = new DataGridViewCheckBoxCell();
                column.CellTemplate.Style.BackColor = Color.Beige;
            }

            wyborKolumn.Columns.Insert(0, column);
        }

        private void rozłaczToolStripMenuItem_Click(object sender, EventArgs e)
        {
            polaczenie.Rozlacz();
        }

        private void połaczToolStripMenuItem_Click(object sender, EventArgs e)
        {
            polaczenie.Polacz();
        }

    }
}
